import { defineStore } from 'pinia'
import { loginAPI } from '@/apis/user'
import {ref} from 'vue'
import {useCartStore} from './cartStore'
import  { mergeCartAPI } from '@/apis/cart'

export const useUserStore=defineStore('user',()=>{
    const cartStore=useCartStore()
    //定义管理数据的state
    const userInfo=ref({})

    //定义获取接口函数的action函数
    const getUserInfo=async({account,password})=>{
       const res =await loginAPI({account,password})
       console.log(res)
       userInfo.value=res.result

       //合并购物车到服务器
      await mergeCartAPI(cartStore.cartList.map(item=>{
        return {
            skuId:item.skuId,
            selected:item.selected,
            count:item.count
        }
       }))
     //获取最新列表
       cartStore.updateNewList()
    }

    //退出时清除用户信息
    const clearUserInfo=()=>{
        userInfo.value={}
        //执行购物车的清除函数
        cartStore.clearCart()

    }
    //以对象格式把state和action return 
    return {
        userInfo,
        getUserInfo,
        clearUserInfo
    }
}, {
    persist: true,
  })